package com.fiveGroup.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 商品基本信息表
 *
 * @TableName product
 */
@Data
@TableName(value = "product")
public class Product {
    /**
     * 商品ID，主键自增
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 商品名称
     */
    @NotBlank(message = "商品名称不能为空")
    @Size(min = 1, max = 50, message = "商品名字最少1个字，不超过50个字")
    private String name;

    /**
     * 商品描述
     */
    private String description;

    /**
     * 商品价格
     */
    @NotNull(message = "商品价格不能为空")
    @DecimalMin(value = "0.01", message = "商品价格必须大于0")
    private BigDecimal price;


    /**
     * 商品状态：0-下架，1-上架,2-审核中,3-已出售,4-已预订
     */
    @NotNull(message = "商品上架状态不能为空")
    private Integer status;

    /**
     * 分类ID，关联category表
     */
    @NotNull(message = "商品类型不能为空")
    private Long categoryId;

    /**
     * 卖家ID，关联user表
     */
    private Long sellerId;


    /**
     * 审核状态：0-待审核，1-审核通过，2-审核不通过
     */
    private Integer auditStatus;

    /**
     * 审核备注
     */
    private String auditRemark;

    /**
     * 创建时间
     */
    private LocalDate createdAt;

    /**
     * 更新时间
     */
    private LocalDate updatedAt;

    private Integer viewCount;
}